請幫我在專案的info建立一個key,如下,並把後面的值改成允許使用藍芽
Privacy - Bluetooth Always Usage Description
再建立一個swift檔案
首先要記得先載入藍芽,並創建一個class,如下
import CoreBluetooth
class BluetoothServices: NSObject {
static let shared = BluetoothServices()
var central: CBCentralManager?
var peripheral: CBPeripheralManager?
var connectedPeripheral: CBPeripheral?
var rxtxCHaracteristic: CBCharacteristic?
private var bluePeripherals: [CBPeripheral] = []
}
// 初始化:副線程
private override init() {
super.init()
let queue = DispatchQueue.global()
central = CBCentralManager(delegate: self, queue: queue)
}
// 掃描藍芽裝置
func startScan() {
central?.scanForPeripherals(withServices: nil, options: nil)
}
// 停止掃描
func stopScan() {
central?.stopScan()
}
// 連接藍芽週邊設備
func connectPeripheral(peripheral: CBPeripheral) {
self.connectedPeripheral = peripheral
central?.connect(peripheral, options: nil)
}
// 中斷與藍芽周邊設備連接
func disconnectPeripheral(peripheral: CBPeripheral) {
central?.cancelPeripheralConnection(peripheral)
}
這邊比較特別的是初始化副線程,因為初始化時,創建一個全局的 DispatchQueue,並將其傳遞給 CBCentralManager。這表示藍牙操作將在後台線程中執行,避免阻塞主線程。
今天跟大家分享的是藍芽的基本功能,包括掃描、連接和斷開連接...等等,明天我們繼續帶大家推進專案的進度